home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1995 February: Tool Chest / Dev.CD Feb 95 / Dev.CD Feb 95.toast / Tool Chest / QuickDraw GX / QuickDraw GX Info / QuickDraw GX Interfaces / Interfaces & Libraries / interfaces / PrintingDrivers.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-04-29  |  34.6 KB  |  1,079 lines  |  [TEXT/MPS ]

  1. /* ------------------------------------------------------------------------------
  2.  
  3.     FILENAME
  4.         PrintingDrivers.h
  5.  
  6.     DESCRIPTION
  7.         This file defines data types and API functions for
  8.         printer driver development.
  9.  
  10.     COPYRIGHT
  11.         Copyright © Apple Computer, Inc. 1989, 1990, 1991, 1992, 1993
  12.         All rights reserved. 
  13.     
  14. ------------------------------------------------------------------------------- */
  15.  
  16. #ifndef __PRINTINGDRIVERS__
  17. #define __PRINTINGDRIVERS__
  18.  
  19.  
  20. #ifndef __PRINTINGMESSAGES__
  21.     #include <PrintingMessages.h>
  22. #endif
  23.  
  24. #ifndef __PRINTING__
  25.     #include <Printing.h>
  26. #endif
  27.  
  28.  
  29. /* ------------------------------------------------------------------------------
  30.  
  31.                         Printing Driver Constants and Types
  32.  
  33. -------------------------------------------------------------------------------- */
  34.  
  35.  
  36. enum {
  37.     gxInputTraysMenuItem = -1            // Menu item number for "Input Trays..."
  38. };
  39.  
  40. enum {                                    // bit fields in communicationsOptions field of IOPrefsRec
  41.     gxUseCustomIO    = 0x00000001            // driver uses a non-standard IO mechanism
  42. };
  43.  
  44. struct gxIOPrefsRec{                        // buffering and IO preferences
  45.     unsigned long    communicationsOptions;
  46.     unsigned long    numBuffers;
  47.     unsigned long    bufferSize;
  48.     unsigned long    numReqBlocks;
  49.     unsigned long    openCloseTimeout;
  50.     unsigned long    readWriteTimeout;
  51. };
  52.  
  53. typedef struct gxIOPrefsRec gxIOPrefsRec, *gxIOPrefsPtr, **gxIOPrefsHdl;
  54.  
  55.  
  56. struct gxPrintDestinationRec{                        // information about writing to a file
  57.     Boolean        printToFile;            // true if output is to go to a file
  58.     FSSpec        fSpec;                    // if going to a file, the FSSpec for the file
  59.     char            includeFonts;            // true if fonts are to be included
  60.     Str31            fileFormat;                // format to write file
  61. };
  62.  
  63. typedef struct gxPrintDestinationRec gxPrintDestinationRec, *gxPrintDestinationPtr, **gxPrintDestinationHdl;
  64.  
  65.  
  66. // this structure is the content of each cell in the standard PACK LDEF
  67.  
  68. struct gxPortListRec{
  69.     char    firstMarker, secondMarker;        // markers to indicate icon or non-icon version
  70.                                                     // if these are ≈ and ≈, then the cell is an icon cell.
  71.                                                     // Otherwise, it is assumed to be a standard text LDEF
  72.                                                     // cell
  73.     
  74.     Handle    iconSuiteHandle;                // the icon suite to draw for this cell
  75.     Handle    outputDriverName;                // handle to the output driver name (for serial)
  76.     Handle    inputDriverName;                // handle to the input driver name (for serial)
  77.     Str255    iconName;                        // name to draw under the icon
  78. };
  79.  
  80. typedef struct gxPortListRec gxPortListRec, *gxPortListPtr;
  81.  
  82.  
  83. /* ------------------------------------------------------------------------------
  84.  
  85.                         Printing Driver Constants for resources in the desktop printer
  86.  
  87. -------------------------------------------------------------------------------- */
  88. #define gxDeviceCommunicationsID            (0)
  89.  
  90.  
  91. // ----------------------------------• 'prod' •----------------------------------
  92.  
  93. // for PostScript devices, the device and version names of the device.
  94. // (0) product name is of type PString
  95. // (1) version is of type PString
  96. // (2) revision is of type PString
  97. // (3) vm available is of type long
  98. // (4) font stream type is of type scalerStreamTypeFlag
  99. // (5) language level is of type long
  100.  
  101. #define gxPostscriptProductInfoType    'prod'
  102. #define gxPostscriptProductNameID        (0)
  103. #define gxPostscriptVersionID                (1)
  104. #define gxPostscriptRevisionID            (2)
  105. #define gxPostscriptVMAvailableID        (3)
  106. #define gxPostscriptFontStreamTypeID    (4)
  107. #define gxPostscriptLanguageLevelID        (5)
  108.  
  109. /* ------------------------------------------------------------------------------
  110.  
  111.                         Printing Driver Constants for status alerts
  112.  
  113. -------------------------------------------------------------------------------- */
  114.  
  115. // the ditl id for the auto feed button in the manual feed alert
  116.  
  117. enum {                                    
  118.     gxAutoFeedButtonId    = 3
  119. };
  120.  
  121.  
  122. // status resource id for the alerts
  123.  
  124. enum {                                    
  125.     gxUnivAlertStatusResourceId    = -28508
  126. };
  127.  
  128.  
  129. // status resource indices for the alerts
  130.  
  131. enum {
  132.     gxUnivManualFeedIndex         = 2,
  133.     gxUnivFailToPrintIndex     = 3,
  134.     gxUnivPaperJamIndex         = 4,
  135.     gxUnivOutOfPaperIndex         = 5,
  136.     gxUnivNoPaperTrayIndex     = 6,
  137.     gxUnivPrinterReadyIndex     = 7,
  138.     gxUnivAlertBeforeIndex     = 9,
  139.     gxUnivAlertAfterIndex         = 10
  140. };
  141.  
  142. // allocation sizes for status buffers needed for automatic alerts
  143.  
  144.  
  145. enum {                                    
  146.     gxDefaultStatusBufferSize        = 10,
  147.     gxManualFeedStatusBufferSize = 34,
  148.     gxOutOfPaperStatusBufferSize = 42
  149. };
  150.  
  151.  
  152. // structures for status buffers
  153.  
  154. struct gxManualFeedRecord{                            // structure passed in statusBuffer of StatusRecord for manual feed alert
  155.     Boolean    canAutoFeed;                // true if driver can switch to auto feed
  156.     Str31        paperTypeName;                // name of paperType to feed manually
  157. };
  158.  
  159. typedef struct gxManualFeedRecord gxManualFeedRecord;
  160.  
  161.  
  162. struct gxOutOfPaperRecord{                            // structure passed in statusBuffer of StatusRecord for out of paper alert
  163.     Str31        paperTypeName;                // name of printing document
  164. };
  165.  
  166. typedef struct gxOutOfPaperRecord gxOutOfPaperRecord;
  167.  
  168.  
  169. /* ------------------------------------------------------------------------------
  170.  
  171.                                 Old Application Support
  172.  
  173. -------------------------------------------------------------------------------- */
  174.  
  175.  
  176. // the format of a 'cust' resource 
  177.  
  178. struct gxCustomizationRec{
  179.     short horizontalResolution;
  180.     short    verticalResolution;
  181.     short upDriverType;
  182.     Point patternStretch;
  183.     short    translatorSettings;
  184. };
  185.  
  186. typedef struct gxCustomizationRec gxCustomizationRec, *gxCustomizationPtr, **gxCustomizationHdl;
  187.     
  188.  
  189. // the format of a 'resl' resource
  190.  
  191. struct gxResolutionRec{
  192.     short        rangeType;                // always 1
  193.     short        xMinimumResolution;
  194.     short        xMaximumResolution;
  195.     short        yMinimumResolution;
  196.     short        yMaximumResolution;
  197.     short        resolutionCount;
  198.     Point        resolutions[1];
  199. };
  200.  
  201. typedef struct gxResolutionRec gxResolutionRec, *gxResolutionPtr, **gxResolutionHdl;
  202.  
  203.  
  204. // constants for the "universal" print record...    
  205.  
  206.  
  207. enum {                                    // version number for "universal" print record
  208.     gxPrintRecordVersion    = 8
  209. };
  210.  
  211. enum {                                    // for feed field...
  212.     gxAutoFeed                    = 0,
  213.     gxManualFeed                = 1
  214. };
  215.  
  216. enum {                                    // bit fields for options field...
  217.     gxPreciseBitmap            = 0x0001,    // tall adjusted (IW), precise bitmap (LW, SC)
  218.     gxBiggerPages                = 0x0002,    // no gaps (IW), larger print area (LW)
  219.     gxGraphicSmoothing        = 0x0004,    // graphic smoothing (LW)
  220.     gxTextSmoothing            = 0x0008,    // text smoothing (SC)
  221.     gxFontSubstitution        = 0x0010,    // font substitution
  222.     gxInvertPage                = 0x0020,    // b/w invert image
  223.     gxFlipPageHoriz            = 0x0040,    // flip horizontal
  224.     gxFlipPageVert                = 0x0080,    // flip vertical
  225.     gxColorMode                    = 0x0100,    // color printing
  226.     gxBidirectional            = 0x0200,    // bidirectional printing
  227.     gxUserFlag0                    = 0x0400,    // user flag 0
  228.     gxUserFlag1                    = 0x0800,    // user flag 1
  229.     gxUserFlag2                    = 0x1000,    // user flag 2
  230.     gxReservedFlag0            = 0x2000,    // reserved flag 0
  231.     gxReservedFlag1            = 0x4000,    // reserved flag 1
  232.     gxReservedFlag2            = 0x8000        // reserved flag 2
  233. };
  234.  
  235. enum {                                    // for orientation field...
  236.     gxPortraitOrientation        = 0,
  237.     gxLandscapeOrientation        = 1,
  238.     gxAltPortraitOrientation    = 2,
  239.     gxAltLandscapeOrientation    = 3
  240. };
  241.  
  242. enum {                                    // for qualityMode field...
  243.     gxBestQuality            = 0,
  244.     gxFasterQuality        = 1,
  245.     gxDraftQuality            = 2
  246. };
  247.  
  248. enum {                                    // for firstTray and remainingTray fields...
  249.     gxFirstTray                = 0,
  250.     gxSecondTray            = 1,
  251.     gxThirdTray                = 2
  252. };
  253.  
  254. enum {                                    // for coverPage field...
  255.     gxNoCoverPage                = 0,
  256.     gxFirstPageCover            = 1,
  257.     gxLastPageCover            = 2
  258. };
  259.  
  260. enum {                                    // for headMotion field...
  261.     gxUnidirectionalMotion    = 0,
  262.     gxBidirectionalMotion    = 1
  263. };
  264.  
  265. enum {                                    // for saveFile field...
  266.     gxNoFile                    = 0,
  267.     gxPostScriptFile            = 1
  268. };
  269.  
  270.  
  271. // the format of the "universal" print record
  272.  
  273. struct gxUniversalPrintRecord{
  274.     short                prVersion;          // print record version 
  275.     
  276.                                                     // prInfo subrecord...
  277.     
  278.     short                appDev;                    // device kind, always 0
  279.     short                appVRes;                    // application vertical resolution
  280.     short                appHRes;                    // application horizontal resolution
  281.     Rect                appPage;                    // page size, in application resolution
  282.     
  283.     Rect                 appPaper;                // paper rectangle [offset from rPage]
  284.     
  285.                                                 // prStl subrecord...
  286.                                         
  287.     short                devType;                    // device type, always 0xA900 (was wDev)
  288.     short                pageV;                    // page height in 120ths of an inch
  289.     short                pageH;                    // page width in 120ths of an inch
  290.     char                fillByte;                // page calculation mode
  291.     char                feed;                        // feed mode
  292.     
  293.                                                 // prInfoPT subrecord...
  294.                                         
  295.     short                devKind;                    // device kind, always 0
  296.     short                devVRes;                    // device vertical resolution
  297.     short                devHRes;                    // device horizontal resolution
  298.     Rect                devPage;                    // device page size
  299.     
  300.                                                 // prXInfo subrecord...
  301.                                         
  302.     short                actualCopies;            // actual number of copies for this job
  303.     short                options;                    // options for this device
  304.     short                reduction;                // reduce/enlarge factor
  305.     
  306.     char                orientation;            // orientation of paper ( 0=portrait, 1=landscape )
  307.     
  308.                                                 // clusters...
  309.                                         
  310.     char                qualityMode;            // quality mode
  311.     char                coverPage;                // cover page
  312.     char                firstTray;                // first feed tray
  313.     char                remainingTray;            // remaining feed tray
  314.     char                headMotion;                // head motion
  315.     char                saveFile;                // save file
  316.     
  317.     char                userCluster1;        // three clusters left over...
  318.     char                userCluster2;
  319.     char                userCluster3;
  320.  
  321.                                                 // prJob subrecord...
  322.                                     
  323.     short                firstPage;                // first page
  324.     short                lastPage;                // last page
  325.     short                copies;                    // # of copies, always 1
  326.     char                reserved1;                // always true, unused
  327.     char                reserved2;                // always true, unused
  328.     PrIdleProcPtr    pIdleProc;                // idle proc
  329.     Ptr                pFileName;                // spool file name pointer
  330.     short                fileVol;                    // spool file vRefNum
  331.     char                fileVers;                // file version, must be 0
  332.     char                reserved3;                // always 0
  333.     
  334.     short             printX[19];          // internal use
  335. };
  336.  
  337. typedef struct gxUniversalPrintRecord gxUniversalPrintRecord, *gxUniversalPrintRecordPtr, **gxUniversalPrintRecordHdl;
  338.         
  339.  
  340.  
  341. /* ------------------------------------------------------------------------------
  342.  
  343.                             Compatibility Printing Messages
  344.  
  345. -------------------------------------------------------------------------------- */
  346.  
  347.  
  348. #ifdef __cplusplus
  349. extern "C" {
  350. #endif
  351.  
  352.  
  353. OSErr Forward_GXPrOpenDoc (THPrint, TPPrPort *)
  354.     = GXFORWARDGLUE;
  355.  
  356. OSErr Forward_GXPrCloseDoc (TPPrPort)
  357.     = GXFORWARDGLUE;
  358.  
  359. OSErr Forward_GXPrOpenPage (TPPrPort, TPRect, Point resolution)
  360.     = GXFORWARDGLUE;
  361.  
  362. OSErr Forward_GXPrClosePage (TPPrPort)
  363.     = GXFORWARDGLUE;
  364.  
  365. OSErr Forward_GXPrintDefault (THPrint)
  366.     = GXFORWARDGLUE;
  367.  
  368. OSErr Forward_GXPrStlDialog (THPrint, Boolean *)
  369.     = GXFORWARDGLUE;
  370.  
  371. OSErr Forward_GXPrJobDialog (THPrint, Boolean *)
  372.     = GXFORWARDGLUE;
  373.  
  374. OSErr Forward_GXPrStlInit (THPrint, TPPrDlg *)
  375.     = GXFORWARDGLUE;
  376.  
  377. OSErr Forward_GXPrJobInit (THPrint, TPPrDlg *)
  378.     = GXFORWARDGLUE;
  379.  
  380. OSErr Forward_GXPrDlgMain (THPrint, PDlgInitProcPtr, Boolean *)
  381.     = GXFORWARDGLUE;
  382.  
  383. OSErr Forward_GXPrValidate (THPrint, Boolean *)
  384.     = GXFORWARDGLUE;
  385.  
  386. OSErr Forward_GXPrJobMerge (THPrint, THPrint)
  387.     = GXFORWARDGLUE;
  388.  
  389. OSErr Forward_GXPrGeneral (Ptr)
  390.     = GXFORWARDGLUE;
  391.  
  392. OSErr Forward_GXConvertPrintRecordTo (THPrint)
  393.     = GXFORWARDGLUE;
  394.  
  395. OSErr Forward_GXConvertPrintRecordFrom (THPrint)
  396.     = GXFORWARDGLUE;
  397.  
  398. OSErr Forward_GXPrintRecordToJob (THPrint, gxJob)
  399.     = GXFORWARDGLUE;
  400.  
  401.  
  402. #ifdef __cplusplus
  403. }
  404. #endif
  405.  
  406.  
  407.  
  408. /* ------------------------------------------------------------------------------
  409.  
  410.                         Raster Driver Contants and Types
  411.  
  412. -------------------------------------------------------------------------------- */
  413.  
  414.  
  415.  
  416. typedef long gxRasterPlaneOptions;
  417.  
  418. enum {                                        // bit fields in RasterPlaneOptions
  419.     gxDefaultOffscreen         = 0x00000000,    // default value - bits are allocated for the client, halftoning takes place
  420.     gxDontSetHalftone            = 0x00000001,    // don't call SetViewPortHalftone
  421.     gxDotTypeIsDitherLevel    = 0x00000002    // call SetViewPortDither using the dotType as the level
  422. };
  423.  
  424. struct gxPlaneSetupRec{                            // input structure for setting up the offscreen
  425.     gxRasterPlaneOptions        planeOptions;    // options for the offscreen package
  426.     gxHalftone                    planeHalftone;    // OPTIONAL: halftone structure for this plane
  427.     gxColorSpace                planeSpace;        // OPTIONAL: noSpace will get the graphics default
  428.     gxColorSet                    planeSet;        // OPTIONAL: NIL gets the default
  429.     gxColorProfile                planeProfile;    // OPTIONAL: NIL gets no matching
  430. };
  431.  
  432. typedef struct gxPlaneSetupRec gxPlaneSetupRec;
  433.     
  434. struct gxOffscreenSetupRec{
  435.     short                 width;                 // Width in pixels
  436.     short                 minHeight;             // minimum height in pixels - actual height returned here
  437.     short                    maxHeight;            // maximum height in pixels
  438.     Fixed                    ramPercentage;        // maximum percentage of RAM to take
  439.     long                    ramSlop;                // amount of RAM to be sure to leave
  440.     short                 depth;                 // Depths in bits of each plane
  441.     gxMapping            vpMapping;            // mapping to assign to offscreen viewPorts
  442.     gxMapping            vdMapping;            // mapping to assign to offscreen viewDevices
  443.     short                 planes;                // # of planes to allocate of depth bits each (can be more than 4)
  444.     gxPlaneSetupRec    planeSetup[4];        // parameters for each plane, 4 is provided because it is most handy for writers of devices
  445. };
  446.  
  447. typedef struct gxOffscreenSetupRec gxOffscreenSetupRec;
  448.  
  449.  
  450.  
  451. struct gxOffscreenPlaneRec{                            // the format of one plane in the offscreen planar area
  452.     gxViewPort            theViewPort;            // viewPort for the offscreen
  453.     gxViewDevice        theDevice;                // viewDevice for the offscreen
  454.     gxViewGroup            theViewGroup;            // the viewGroup that they share
  455.     gxShape                theBitmap;                // the offscreen bitmap shape
  456.     gxBitmap                theBits;                    // the bits of the offscreen
  457. };
  458.  
  459. typedef struct gxOffscreenPlaneRec gxOffscreenPlaneRec;
  460.  
  461. struct gxOffscreenRec{                            // an entire offscreen area
  462.     short                        numberOfPlanes;    // number of planes we have
  463.     Handle                    offscreenStorage;    // handle containing the bitmaps image data
  464.     gxOffscreenPlaneRec    thePlanes[1];        // planes to draw in
  465. };
  466.  
  467. typedef struct gxOffscreenRec gxOffscreenRec, *gxOffscreenPtr, **gxOffscreenHdl;
  468.  
  469.  
  470.  
  471. typedef long gxRasterRenderOptions;
  472.  
  473. enum {                                        // bit fields in RasterRenderOptions
  474.     gxDefaultRaster                = 0x00000000,    // default raster options
  475.     gxDontResolveTransferModes = 0x00000001,    // 0=Resolve, 1=Don't Resolve
  476.     gxRenderInReverse                 = 0x00000002,    // traverse image in reverse order
  477.     gxOnePlaneAtATime                = 0x00000004,    // render each plane separately
  478.     gxSendAllBands                    = 0x00000008    // send even empty bands
  479. };
  480.  
  481.  
  482. struct gxRasterPrefsRec{                            // structure of resource to control raster imaging
  483.     gxRasterRenderOptions    renderOptions;    // options for the raster imaging system
  484.     Fixed                            hImageRes;        // horizontal resolution to image at
  485.     Fixed                            vImageRes;        // vertical resolution to image at
  486.     short                            minBandSize;    // minimum band size to use (in pixels)
  487.     short                            maxBandSize;    // maximum band size to use (in pixels), 0 == entire page
  488.     Fixed                            ramPercentage;    // maximum percentage of RAM to take
  489.     long                            ramSlop;            // amount of RAM to be sure to leave
  490.     short                            depth;            // depth in pixels (PER PLANE!)
  491.     short                            numPlanes;        // number of planes to render
  492.     gxPlaneSetupRec            planeSetup[1];    // one for each plane
  493. };
  494.  
  495. typedef struct gxRasterPrefsRec gxRasterPrefsRec, *gxRasterPrefsPtr, **gxRasterPrefsHdl;
  496.  
  497.  
  498. typedef long gxRasterPackageOptions;
  499.  
  500. enum {                                        // bit fields in RasterPackageOptions
  501.     gxSendAllColors    = 0x00000001,                                // send even clean bands through
  502.     gxInterlaceColor    = 0x00000002,                                // ribbon contamination is a concern
  503.     gxOverlayColor        = 0x00000004,                                // color printer without a ribbon problem
  504.     gxUseColor            =    (gxInterlaceColor|gxOverlayColor)        // this is a color printer
  505. };
  506.  
  507.  
  508. struct gxRasterPackageRec{                            // resource to control the RasterDataIn message
  509.     Ptr                            bufferSize;            // buffer size for packaging (>= maximum head pass size)
  510.     short                            colorPasses;        // 1 (b/w) or 4 (CMYK) is typical
  511.     short                         headHeight;            // printhead height in pixels
  512.     short                         numberPasses;        // number of head passes it takes to == iHeadHeight
  513.     short                            passOffset;            // offset between passes, in pixels
  514.     gxRasterPackageOptions    packageOptions;    // packaging options
  515. };
  516.  
  517. typedef struct gxRasterPackageRec gxRasterPackageRec, *gxRasterPackagePtr, **gxRasterPackageHdl;
  518.  
  519.  
  520. struct gxRasterPackageBitmapRec{                                            // for RasterPackageBitmap message
  521.     gxBitmap                            *bitmapToPackage;        // bitmap containing the data to package
  522.     unsigned short                    startRaster;            // raster to begin the packaging from
  523.     unsigned short                    colorBand;                // for which color pass this is a packaging request
  524.     Boolean                            isBandDirty;            // whether there are any dirty bits in this band
  525.     Rect                                dirtyRect;                // which bits are dirty
  526. };
  527.  
  528. typedef struct gxRasterPackageBitmapRec gxRasterPackageBitmapRec;
  529.  
  530.  
  531. struct    gxStandardNumberRec{                            // for outputing numbers
  532.     short    numberType;                            // type of numberic output desired
  533.     short minWidth;                            // minimum output width of the number
  534.     char    padChar;                                // pad character for numbers shorter than the minWidth
  535.     char    alignment;                            // whee!
  536.     Str31    startString;                        // prefix string
  537.     Str31    endString;                            // postfix string
  538. };
  539.  
  540. typedef struct gxStandardNumberRec gxStandardNumberRec, *gxStandardNumberPtr;
  541.  
  542.  
  543.  
  544. struct gxRasterPackageControlsRec{                            // structure of resource to control other messages
  545.     short                        startPageStringID;    // 'wstr' to send to the device at start of page
  546.     short                        formFeedStringID;        // 'wstr' to send to the device to cause a form feed
  547.     short                        forwardMax;                // line feed strings
  548.     gxStandardNumberRec    forwardLineFeed;
  549.     short                        reverseMax;
  550.     gxStandardNumberRec    reverseLineFeed;
  551. };
  552.  
  553. typedef struct gxRasterPackageControlsRec gxRasterPackageControlsRec, *gxRasterPackageControlsPtr, **gxRasterPackageControlsHdl;
  554.  
  555.  
  556.  
  557. struct gxRasterImageDataRec{                            // raster imaging system imageData structure
  558.  
  559.     // setup values
  560.  
  561.     gxRasterRenderOptions        renderOptions;        // options for the raster imaging system
  562.     Fixed                                hImageRes;            // horizontal resolution to image at
  563.     Fixed                                vImageRes;            // vertical resolution to image at
  564.     short                                minBandSize;        // smallest band that makes sense for this device
  565.     short                                maxBandSize;        // biggest band that makes sense, or 0 for "full page"
  566.     gxRectangle                        pageSize;            // size of page for device
  567.     
  568.     // values used within the RasterDataIn message
  569.     
  570.     short                                currentYPos;        // current position moving down the page
  571.     gxRasterPackageRec            packagingInfo;        // raster packaging record
  572.     
  573.     // values used within the remaining messages
  574.     
  575.     Boolean                            optionsValid;        // were options specified by the driver?
  576.     gxRasterPackageControlsRec    packageControls;    // options for the packaging messages
  577.  
  578.     gxOffscreenSetupRec                theSetup;            // setup for the offscreen code, variable length componant
  579. };
  580.  
  581. typedef struct gxRasterImageDataRec gxRasterImageDataRec, *gxRasterImageDataPtr, **gxRasterImageDataHdl;
  582.  
  583.  
  584.  
  585. /* ------------------------------------------------------------------------------
  586.  
  587.                                 Raster Driver Imaging Messages
  588.  
  589. -------------------------------------------------------------------------------- */
  590.  
  591.  
  592. #ifndef __powerc
  593. #ifdef __cplusplus
  594. extern "C" {
  595. #endif
  596.  
  597.  
  598. #define GXRASTERMSGGLUE(selector) SendMessageGlue(0x0001, selector)
  599. #define GXFORWARDGLUE ForwardThisMessageGlue
  600.  
  601. OSErr Send_GXRasterDataIn (gxOffscreenHdl, gxRectangle *bandRectangle, gxRectangle *dirtyRectangle)
  602.     = GXRASTERMSGGLUE(gxRasterDataIn);
  603. OSErr Forward_GXRasterDataIn (gxOffscreenHdl, gxRectangle *bandRectangle, gxRectangle *dirtyRectangle)
  604.     = GXFORWARDGLUE;
  605.          
  606. OSErr Send_GXRasterLineFeed (short *lineFeedSize, Ptr buffer, unsigned long *bufferPos, gxRasterImageDataHdl)
  607.     = GXRASTERMSGGLUE(gxRasterLineFeed);
  608. OSErr Forward_GXRasterLineFeed (short *lineFeedSize, Ptr buffer, unsigned long *bufferPos, gxRasterImageDataHdl)
  609.     = GXFORWARDGLUE;
  610.     
  611. OSErr Send_GXRasterPackageBitmap (gxRasterPackageBitmapRec *whatToPackage, Ptr buffer,
  612.                                           unsigned long *bufferPos, gxRasterImageDataHdl)
  613.     = GXRASTERMSGGLUE(gxRasterPackageBitmap);
  614. OSErr Forward_GXRasterPackageBitmap (gxRasterPackageBitmapRec *whatToPackage, Ptr buffer,
  615.                                                 unsigned long *bufferPos, gxRasterImageDataHdl)
  616.     = GXFORWARDGLUE;
  617.  
  618. #ifdef __cplusplus
  619. }
  620. #endif
  621. #endif
  622.  
  623.  
  624.  
  625. /* ------------------------------------------------------------------------------
  626.  
  627.                         Vector Driver Contants and Types
  628.  
  629. -------------------------------------------------------------------------------- */
  630.  
  631.  
  632.  
  633. typedef long gxVectorRenderOptions;
  634.  
  635. enum {                                // bit fields in VectorRenderOptions
  636.     gxColorSort            = 0x00000001,    // set for pen plotters. 
  637.     gxATransferMode    = 0x00000002,    // set if transfer modes need to be resolved 
  638.     gxNoOverlap            = 0x00000004,    // set if non-overlapping output is desired
  639.     gxAColorBitmap        = 0x00000008,    // set if color bitmap output is desired
  640.     gxSortbyPenPos        = 0x00000010,    // set if shapes are to be drawn in the order of the pen index
  641.                                                  // in the pen table. NOTE: this is not the pen position in the carousel.
  642.     gxPenLessPlotter    = 0x00000020,    // indicates raster printer/plotter
  643.     gxCutterPlotter    = 0x00000040,    // indicates cutter
  644.     gxNoBackGround        = 0x00000080    // set if shapes that map to the background color should not be sent to driver 
  645. };
  646.  
  647.             
  648. typedef long gxVectorShapeOptions;
  649.  
  650. enum {                                        // bit fields in gxVectorShapeOptions
  651.     gxUnidirectionalFill            = 0x00000001,    // generate scanlines in one direction only.. useful for transparencies
  652.     gxAlsoOutlineFilledShape    = 0x00000002    // turn on this bit to also outline solid filled shapes 
  653. };
  654.  
  655.  
  656. struct gxVHalftoneCompRec{
  657.     Fixed        angle;                // angle to halftone at. Must be 0, 90, 45 or 135
  658.     long        penIndex;            // index of the pen to draw this component with
  659. };
  660.  
  661. typedef struct gxVHalftoneCompRec gxVHalftoneCompRec;
  662.   
  663.   
  664. struct gxVHalftoneRec{
  665.     gxColorSpace            halftoneSpace;
  666.     gxVHalftoneCompRec    halftoneComps[4]; // info for each color component
  667.     long                        penIndexForBW;     // pen index to draw one bit deep or black and white bitmap with
  668. };
  669.  
  670. typedef struct gxVHalftoneRec gxVHalftoneRec;
  671.  
  672.  
  673. struct gxVectorShapeDataRec{
  674.     gxVectorShapeOptions    shapeOptions;      // options to control shape handling
  675.     long                        maxPolyPoints;     // maximum number of polygon points that device can support
  676.     Fixed                        shapeError;        // defines allowed deviation from the original shape
  677.     Fixed                        textSize;           // text above this size is filled; text below this size is outlined
  678.     Fixed                        frameSize;            // frame's smaller than this -> shape stroked; frame's larger -> shape is filled
  679. };
  680.  
  681. typedef struct gxVectorShapeDataRec gxVectorShapeDataRec;
  682.  
  683.  
  684. struct gxVectorImageDataRec{                                // vector imaging system imageData structure
  685.     gxVectorRenderOptions    renderOptions;        // options to control rendering: color sort, clipping, etc.
  686.     Fixed                            devRes;                // device resolution
  687.     gxTransform                devTransform;        // mapping, clip and halftoning information for colored bitmaps
  688.     gxColorSet                    clrSet;                // entire set of colors; usually indexed color space for pen plotters
  689.     gxColor                       bgColor;                // the background color in the color space specified by the clrSpace field
  690.     gxVHalftoneRec                halftoneInfo;        // defines halftone information for color bitmaps
  691.     gxPenTableHdl                hPenTable;            // complete list of pens along with their pen positions and thickness
  692.     gxRectangle                    pageRect;            // page dimensions
  693.     gxVectorShapeDataRec        shapeData;            // information on how to render a shape
  694. };
  695.  
  696. typedef struct gxVectorImageDataRec gxVectorImageDataRec, *gxVectorImageDataPtr, **gxVectorImageDataHdl;
  697.  
  698.  
  699.  
  700. /* ------------------------------------------------------------------------------
  701.  
  702.                                 Vector Driver Imaging Messages
  703.  
  704. -------------------------------------------------------------------------------- */
  705.  
  706.  
  707. #ifndef __powerc
  708. #ifdef __cplusplus
  709. extern "C" {
  710. #endif
  711.  
  712.  
  713. #define GXVECTORMSGGLUE(selector) SendMessageGlue(0x0001, selector)
  714. #define GXFORWARDGLUE ForwardThisMessageGlue
  715.  
  716.  
  717. OSErr Send_GXVectorPackageShape (gxShape, long penIndex)
  718.     = GXVECTORMSGGLUE(gxVectorPackageData);
  719. OSErr Forward_GXVectorPackageShape (gxShape, long penIndex)
  720.     = GXFORWARDGLUE;
  721.     
  722. OSErr Send_GXVectorLoadPens (gxPenTableHdl, long *shapeCounts, boolean *penTableChanged)
  723.     = GXVECTORMSGGLUE(gxVectorLoadPens);
  724. OSErr Forward_GXVectorLoadPens (gxPenTableHdl, long *shapeCounts, boolean *penTableChanged)
  725.     = GXFORWARDGLUE;
  726.  
  727. OSErr Send_GXVectorVectorizeShape (gxShape, long penIndex, gxVectorShapeDataRec *)
  728.     = GXVECTORMSGGLUE(gxVectorVectorizeShape);
  729. OSErr Forward_GXVectorVectorizeShape (gxShape, long penIndex, gxVectorShapeDataRec *)
  730.     = GXFORWARDGLUE;
  731.  
  732.  
  733. #ifdef __cplusplus
  734. }
  735. #endif
  736. #endif
  737.  
  738.  
  739.  
  740. /* ------------------------------------------------------------------------------
  741.  
  742.                             PostScript Driver Contants and Types
  743.  
  744. -------------------------------------------------------------------------------- */
  745.  
  746.  
  747.  
  748. enum { gxPostSynonym = (long)'post' };
  749.  
  750.  
  751. typedef long gxPostScriptRenderOptions;
  752.  
  753. enum {                                             // bit fields in PostScriptRenderOptions
  754.     gxNeedsHexOption                = 0x00000001,    // convert all binary data to hex
  755.     gxNeedsCommentsOption        = 0x00000002,    // issue PostScript comments
  756.     gxBoundingBoxesOption        = 0x00000004,    // calculate the values for %%BoundingBox: and %%PageBoundingBox: -- requires needsCommentsOption
  757.     gxPortablePostScriptOption    = 0x00000008,    // generate portable PostScript
  758.     gxTextClipsToPathOption        = 0x00000010,    // convert all clips that are composed of text to path shapes
  759.     gxFlattenClipPathOption        = 0x00000020,    // convert all clips that are path shapes to polygons (helps better control point limit)
  760.     gxUseCharpath1Option            = 0x00000040,    // (ignored if text clips are converted to paths)  When the clip is text, 
  761.                                                             // do it one glyph at a time, redrawing the main shape each time
  762.     gxUseLevel2ColorOption        = 0x00000080    // When printing to level-2 use level-2 device independent color
  763. };
  764.  
  765.  
  766.  
  767. struct gxPrinterGlyphsRec{
  768.  
  769.     gxFont                    theFont;                            // ---> font reference.
  770.     long                        nGlyphs;                            // ---> Number of glyphs in the font.
  771.  
  772.     gxFontPlatform            platform;                        // <--- How printer font is encoded.
  773.     gxFontScript            script;                            // <--- Script if platform != glyphPlatform
  774.     gxFontLanguage            language;                        // <--- Language if platform != glyphPlatform.
  775.     
  776.     long                        vmUsage;                            // <--- how much PostScript VM font uses.
  777.  
  778.     /** size of this is longAlligned(nGlyphs) **/
  779.     unsigned long        glyphBits[1];                        // <--- Bit array of which system glyphs are in printer.
  780.  
  781. };
  782.  
  783. typedef struct gxPrinterGlyphsRec gxPrinterGlyphsRec;
  784.  
  785. struct gxPostScriptImageDataRec{                                // PostScript imaging system imageData structure
  786.     short                                languageLevel;    // PostScript language level
  787.     gxColorSpace                    devCSpace;        // the printer's color space
  788.     gxColorProfile                    devCProfile;    // The printer's color profile for matching
  789.     gxPostScriptRenderOptions    renderOptions;    // options for the imaging system
  790.     long                                pathLimit;        // maximum path size
  791.     short                                gsaveLimit;        // maximum number of gsaves allowed
  792.     short                                opStackLimit;    // operand stack limit
  793.     scalerStreamTypeFlag            fontType;        // these are the font types that the printer supports 
  794.     long                                printerVM;        // how much memory is in the printer
  795.     long                                reserved0;
  796. };
  797.  
  798. typedef struct gxPostScriptImageDataRec gxPostScriptImageDataRec, *gxPostScriptImageDataPtr, **gxPostScriptImageDataHdl;
  799.  
  800.  
  801. struct    gxProcSetListRec{                                // for GetProcSetList / DownLoadProcSetList messages
  802.     Signature    clientid;
  803.     OSType        controlType;                        // the driver will call FetchTaggedData on each of these resources
  804.     short            controlid;
  805.     OSType        dataType;
  806.     long            reserved0;
  807. };
  808.  
  809. typedef struct gxProcSetListRec gxProcSetListRec, *gxProcSetListPtr, **gxProcSetListHdl;
  810.  
  811.  
  812.  
  813.  
  814. enum {                             // possible results of querying printer (returned by PostScriptQueryPrinter message)
  815.     gxPrinterOK                = 0,
  816.     gxIntializePrinter    = 1, 
  817.     gxFilePrinting            = 2,
  818.     gxResetPrinter         = 128
  819. };
  820.  
  821.  
  822.  
  823. /* ------------------------------------------------------------------------------
  824.  
  825.                                 PostScript Driver Imaging Messages
  826.  
  827. -------------------------------------------------------------------------------- */
  828.  
  829.  
  830. #ifndef __powerc
  831. #ifdef __cplusplus
  832. extern "C" {
  833. #endif
  834.  
  835.  
  836. #define GXPOSTSCRIPTMSGGLUE(selector) SendMessageGlue(0x0001, selector)
  837. #define GXFORWARDGLUE ForwardThisMessageGlue
  838.  
  839.  
  840. // device control messages
  841.  
  842. OSErr Send_GXPostScriptQueryPrinter (long *)
  843.     = GXPOSTSCRIPTMSGGLUE(gxPostscriptQueryPrinter);
  844. OSErr Forward_GXPostScriptQueryPrinter (long *)
  845.     = GXFORWARDGLUE;
  846.  
  847. OSErr Send_GXPostScriptInitializePrinter (void)
  848.     = GXPOSTSCRIPTMSGGLUE(gxPostscriptInitializePrinter);
  849. OSErr Forward_GXPostScriptInitializePrinter (void)
  850.     = GXFORWARDGLUE;
  851.  
  852. OSErr Send_GXPostScriptResetPrinter (void)
  853.     = GXPOSTSCRIPTMSGGLUE(gxPostscriptResetPrinter);
  854. OSErr Forward_GXPostScriptResetPrinter (void)
  855.     = GXFORWARDGLUE;
  856.  
  857. OSErr Send_GXPostScriptExitServer (void)
  858.     = GXPOSTSCRIPTMSGGLUE(gxPostscriptExitServer);
  859. OSErr Forward_GXPostScriptExitServer (void)
  860.     = GXFORWARDGLUE;
  861.     
  862.     
  863. // device communication messages
  864.  
  865.  
  866. OSErr Send_GXPostScriptGetStatusText (Handle)
  867.     = GXPOSTSCRIPTMSGGLUE(gxPostscriptGetStatusText);
  868. OSErr Forward_GXPostScriptGetStatusText (Handle)
  869.     = GXFORWARDGLUE;
  870.  
  871. OSErr Send_GXPostScriptGetPrinterText (Handle)
  872.     = GXPOSTSCRIPTMSGGLUE(gxPostscriptGetPrinterText);
  873. OSErr Forward_GXPostScriptGetPrinterText (Handle)
  874.     = GXFORWARDGLUE;
  875.  
  876. OSErr Send_GXPostScriptScanStatusText (Handle)
  877.     = GXPOSTSCRIPTMSGGLUE(gxPostscriptScanStatusText);
  878. OSErr Forward_GXPostScriptScanStatusText (Handle)
  879.     = GXFORWARDGLUE;
  880.  
  881. OSErr Send_GXPostScriptScanPrinterText (Handle)
  882.     = GXPOSTSCRIPTMSGGLUE(gxPostscriptScanPrinterText);
  883. OSErr Forward_GXPostScriptScanPrinterText (Handle)
  884.     = GXFORWARDGLUE;
  885.  
  886.  
  887. // proc set management messages
  888.  
  889.  
  890. OSErr Send_GXPostScriptGetDocumentProcSetList (gxProcSetListHdl, gxPostScriptImageDataHdl)
  891.     = GXPOSTSCRIPTMSGGLUE(gxPostscriptGetDocumentProcSetList);
  892. OSErr Forward_GXPostScriptGetDocumentProcSetList (gxProcSetListHdl, gxPostScriptImageDataHdl)
  893.     = GXFORWARDGLUE;
  894.  
  895. OSErr Send_GXPostScriptDownloadProcSetList (gxProcSetListHdl, gxPostScriptImageDataHdl)
  896.     = GXPOSTSCRIPTMSGGLUE(gxPostscriptDownloadProcSetList);
  897. OSErr Forward_GXPostScriptDownloadProcSetList (gxProcSetListHdl, gxPostScriptImageDataHdl)
  898.     = GXFORWARDGLUE;
  899.     
  900.     
  901. // font management messages
  902.  
  903.  
  904. OSErr Send_GXPostScriptGetPrinterGlyphsInformation (gxPrinterGlyphsRec *)
  905.     = GXPOSTSCRIPTMSGGLUE(gxPostscriptGetPrinterGlyphsInformation);
  906. OSErr Forward_GXPostScriptGetPrinterGlyphsInformation (gxPrinterGlyphsRec *)
  907.     = GXFORWARDGLUE;
  908.  
  909. OSErr Send_GXPostScriptStreamFont (gxFont fontref, scalerStream* streamPtr)
  910.     = GXPOSTSCRIPTMSGGLUE(gxPostscriptStreamFont);
  911. OSErr Forward_GXPostScriptPostScriptStreamFont (gxFont fontref, scalerStream* streamPtr)
  912.     = GXFORWARDGLUE;
  913.  
  914.  
  915. // document structuring and formatting messages
  916.  
  917.  
  918. OSErr Send_GXPostScriptDoDocumentHeader (gxPostScriptImageDataHdl)
  919.     = GXPOSTSCRIPTMSGGLUE(gxPostscriptDoDocumentHeader);
  920. OSErr Forward_GXPostScriptDoDocumentHeader (gxPostScriptImageDataHdl)
  921.     = GXFORWARDGLUE;
  922.     
  923. OSErr Send_GXPostScriptDoDocumentSetup (gxPostScriptImageDataHdl)
  924.     = GXPOSTSCRIPTMSGGLUE(gxPostscriptDoDocumentSetUp);
  925. OSErr Forward_GXPostScriptDoDocumentSetup (gxPostScriptImageDataHdl)
  926.     = GXFORWARDGLUE;
  927.  
  928. OSErr Send_GXPostScriptDoDocumentTrailer (gxPostScriptImageDataHdl)
  929.     = GXPOSTSCRIPTMSGGLUE(gxPostscriptDoDocumentTrailer);
  930. OSErr Forward_GXPostScriptDoDocumentTrailer (gxPostScriptImageDataHdl)
  931.     = GXFORWARDGLUE;
  932.     
  933.     
  934. // page structuring and formatting messages
  935.  
  936.  
  937. OSErr Send_GXPostScriptDoPageSetup (gxFormat, long, gxPostScriptImageDataHdl)
  938.     = GXPOSTSCRIPTMSGGLUE(gxPostscriptDoPageSetUp);
  939. OSErr Forward_GXPostScriptDoPageSetup (gxFormat, long, gxPostScriptImageDataHdl)
  940.     = GXFORWARDGLUE;
  941.  
  942. OSErr Send_GXPostScriptSelectPaperType (gxPaperType, long, gxPostScriptImageDataHdl)
  943.     = GXPOSTSCRIPTMSGGLUE(gxPostscriptSelectPaperType);
  944. OSErr Forward_GXPostScriptSelectPaperType (gxPaperType, long, gxPostScriptImageDataHdl)
  945.     = GXFORWARDGLUE;
  946.  
  947. OSErr Send_GXPostScriptDoPageTrailer (gxPostScriptImageDataHdl)
  948.     = GXPOSTSCRIPTMSGGLUE(gxPostscriptDoPageTrailer);
  949. OSErr Forward_GXPostScriptDoPageTrailer (gxPostScriptImageDataHdl)
  950.     = GXFORWARDGLUE;
  951.  
  952. #ifdef applec
  953. OSErr Send_GXPostScriptEjectPage (gxPaperType, long pagenumber, long copiescount, short erasepage, gxPostScriptImageDataHdl)
  954.     = GXPOSTSCRIPTMSGGLUE(gxPostscriptEjectPage);
  955. OSErr Forward_GXPostScriptEjectPage (gxPaperType, long pagenumber, long copiescount, short erasepage, gxPostScriptImageDataHdl)
  956.     = GXFORWARDGLUE;
  957. #else
  958. OSErr Send_GXPostScriptEjectPage (gxPaperType, long pagenumber, long copiescount, long erasepage, gxPostScriptImageDataHdl)
  959.     = GXPOSTSCRIPTMSGGLUE(gxPostscriptEjectPage);
  960. OSErr Forward_GXPostScriptEjectPage (gxPaperType, long pagenumber, long copiescount, long erasepage, gxPostScriptImageDataHdl)
  961.     = GXFORWARDGLUE;
  962. #endif
  963.  
  964. // shape imaging messages
  965.  
  966.  
  967. OSErr Send_GXPostScriptProcessShape (gxShape page,long trcount, gxTransform trlist[])
  968.     = GXPOSTSCRIPTMSGGLUE(gxPostscriptProcessShape);
  969. OSErr Forward_GXPostScriptProcessShape (gxShape page,long trcount, gxTransform trlist[])
  970.     = GXFORWARDGLUE;
  971.  
  972.  
  973. #ifdef __cplusplus
  974. }
  975. #endif
  976. #endif
  977.  
  978.  
  979.  
  980. /* ------------------------------------------------------------------------------
  981.  
  982.                                             Driver API Functions
  983.  
  984. -------------------------------------------------------------------------------- */
  985.  
  986. enum {
  987.     gxMissingImagePointer = -4            // for printer gxViewDevice bitmaps
  988. };
  989.  
  990.  
  991. #define GXDRIVERAPIGLUE(selector) {0x203C, 0x0002, selector, 0xABFE}
  992.  
  993.  
  994. #ifndef __powerc
  995. #ifdef __cplusplus
  996. extern "C" {
  997. #endif
  998.  
  999.  
  1000. OSErr GXAddPrinterViewDevice (gxPrinter, gxViewDevice)
  1001.     = GXDRIVERAPIGLUE(0);
  1002.  
  1003. OSErr GXGetAvailableJobFormatModes (gxJobFormatModeTableHdl *)
  1004.     = GXDRIVERAPIGLUE(1);
  1005.  
  1006. OSErr GXSetPreferredJobFormatMode (gxJobFormatMode, Boolean directOnly)
  1007.     = GXDRIVERAPIGLUE(2);
  1008.  
  1009.  
  1010. #ifdef applec
  1011. OSErr GXPrintingAlert (short iconId,
  1012.                       short txtSize,
  1013.                       short defaultTitleNum,
  1014.                       short cancelTitleNum,
  1015.                       short textLength,
  1016.                       Ptr pAlertMsg,
  1017.                       StringPtr actionTitle,
  1018.                       StringPtr title2,
  1019.                       StringPtr title3,
  1020.                       StringPtr msgFont,
  1021.                       ModalFilterProcPtr filterProc,
  1022.                       short *itemHit,
  1023.                       StringPtr    alertTitle)
  1024.     = GXDRIVERAPIGLUE(3);
  1025.  
  1026. OSErr GXGetPrintingAlert (short alertResId, ModalFilterProcPtr, short *itemHit) 
  1027.     = GXDRIVERAPIGLUE(4);
  1028.  
  1029. OSErr GXFetchDTPData (Str31 dtpName, OSType theType, short theID, Handle *theData)
  1030.     = GXDRIVERAPIGLUE(5);
  1031.  
  1032. OSErr GXWriteDTPData (Str31 dtpName, OSType theType, short theID, Handle theData)
  1033.     = GXDRIVERAPIGLUE(6);
  1034.  
  1035. OSErr GXHandleChooserMessage (gxJob *aJob, Str31 driverName, short message, short caller, 
  1036.                                      StringPtr objName, StringPtr zoneName, ListHandle theList, long p2)
  1037.     = GXDRIVERAPIGLUE(7);
  1038.     
  1039. #else
  1040.  
  1041. OSErr GXPrintingAlert (long iconId,
  1042.                       long txtSize,
  1043.                       long defaultTitleNum,
  1044.                       long cancelTitleNum,
  1045.                       long textLength,
  1046.                       Ptr pAlertMsg,
  1047.                       StringPtr actionTitle,
  1048.                       StringPtr title2,
  1049.                       StringPtr title3,
  1050.                       StringPtr msgFont,
  1051.                       ModalFilterProcPtr filterProc,
  1052.                       short *itemHit,
  1053.                       StringPtr    alertTitle)
  1054.     = GXDRIVERAPIGLUE(3);
  1055.  
  1056. OSErr GXGetPrintingAlert (long alertResId, ModalFilterProcPtr, short *itemHit) 
  1057.     = GXDRIVERAPIGLUE(4);
  1058.  
  1059. OSErr GXFetchDTPData (Str31 dtpName, OSType theType, long theID, Handle *theData)
  1060.     = GXDRIVERAPIGLUE(5);
  1061.  
  1062. OSErr GXWriteDTPData (Str31 dtpName, OSType theType, long theID, Handle theData)
  1063.     = GXDRIVERAPIGLUE(6);
  1064.  
  1065. OSErr GXHandleChooserMessage (gxJob *aJob, Str31 driverName, long message, long caller, 
  1066.                                      StringPtr objName, StringPtr zoneName, ListHandle theList, long p2)
  1067.     = GXDRIVERAPIGLUE(7);
  1068. #endif
  1069.  
  1070.  
  1071.  
  1072.  
  1073. #ifdef __cplusplus
  1074. }
  1075. #endif
  1076. #endif
  1077.  
  1078.  
  1079. #endif